Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.08.2018, 10:41
Новичок на форуме
Отправить личное сообщение для Glebiys Посмотреть профиль Найти все сообщения от Glebiys
 
Регистрация: 17.08.2018
Сообщений: 3

Проблема с запуском php функции через ajax
Добрый день!

Задача: необходимо перенаправить пользователя на другую страницу при успешном подключении к WebSocket серверу или получении от него каких-либо сообщений. Мне важно это реализовать именно при вызове функции php.

Код:
<?php
$ws = true;

function location() {
  header('Location: http://www.example.com/');
}

if($_POST['action'] == 'location') {
  location();
}
?>

<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>

  <?php if($ws == true) : ?>
    <script type="text/javascript">    
     var socket = new WebSocket("ws://xx.xx.xxx.xx:xxxx");
     
    socket.onopen = function() {
      $.ajax({
       url : 'wsajax.php' ,
       method : 'POST' ,
       data : { action : 'location' },
      success : function(resp){
       }
      });
     };
     </script>
  <?php endif; ?>

</body>
</html>


Итог работы: при обновлении страницы происходит подключение к серверу, но никаких перенаправлений не происходит. В чем моя ошибка?
Ответить с цитированием
  #2 (permalink)  
Старый 20.08.2018, 12:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Glebiys
роисходит подключение к серверу, но никаких перенаправлений не происходит
Потому, что запрос асинхронный и ответ сервера приходит вот сюда success : function(resp). Делайте перенаправление средствами JS после ответа сервера. Собственно зачем вообще в таком случае Ajax?
Ответить с цитированием
  #3 (permalink)  
Старый 20.08.2018, 12:59
Новичок на форуме
Отправить личное сообщение для Glebiys Посмотреть профиль Найти все сообщения от Glebiys
 
Регистрация: 17.08.2018
Сообщений: 3

Помимо перенаправления мне нужно еще добавлять записи в БД. Я понял, что вызвав функцию я смогу только добавить данные в БД, а делать перенаправление уже через JS.
Ответить с цитированием
  #4 (permalink)  
Старый 20.08.2018, 13:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Glebiys
Помимо перенаправления мне нужно еще добавлять записи в БД.
А что без Ajax этого нельзя сделать? Если не предполагается диалога с сервером, то он не к чему.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение через ajax к классу, функции на php Vincent Vega jQuery 2 21.02.2016 15:23
PHP и AJAX и 3 тега select. seahunter Общие вопросы Javascript 4 16.12.2015 12:48
как передать php массивы через ajax Evsik AJAX и COMET 11 11.07.2015 06:32
Книги по Ajax BaVa Учебные материалы 18 18.08.2013 14:05
Проблема с обработкой селектов html кода, пришедшего через ajax запрос Rage jQuery 6 26.01.2009 14:15